// 求两个数二进制中不同位的个数
//int main()
//{
//	// 输入
//	int m, n;
//	scanf("%d %d", &m, &n); // 1999 2299
//	// 处理
//	int y = m ^ n;
//	//int  a = 15;
//	int count = 0;
//	for (int i = 1; i <= 32; i++)
//	{
//		if (y & 1 == 1)   // 得到二进制的最末位
//			count++;
//		y = y >> 1; // 舍掉
//	}
//
//	// 输出
//	printf("%d\n",count);
//	return 0;
//}

//// 交换两个变量的值，不创建第三个变量
//int main()
//{
//	int a = 10, b = 20;
//	printf("a=%d,b=%d\n", a, b);
//	a = a ^ b;	// 10 ^ 20
//	b = a ^ b;  // 10 ^ 20 ^ 20  = 10
//	a = a ^ b;  // 10 ^ 20 ^ 10  = 20
//	printf("a=%d,b=%d\n", a, b);
//	return 0;
//}

//// 统计十进制整型补码中1的个数
//int main()
//{
//	size_t m = 0;
//	scanf("%d", &m);
//	int count = 0;
//	while (m != 0)
//	{
//		if (m & 1 == 1)
//			count++;
//		m >>= 1;
//	}
//	printf("%d\n", count);
//}

//int main()
//{
//	int m = 0;
//	scanf("%d", &m);
//	int count = 0;
//	for (int i = 0; i < 32;i++)
//	{
//		if ((m >> i) & 1 == 1)
//			count++;
//
//	}
//	printf("%d\n", count);
//}

//int main()
//{
//	int m = 0;
//	scanf("%d", &m);
//	int count = 0;
//	while (m)
//	{
//		m = m & (m - 1);        // 效率最高
//		count++;
//	}
//	printf("%d\n", count++);
//	return 0;
//}


// 获取一个整数二进制序列中所有的偶数位和奇数位，分别打印出二进制序列
int main()
{

	return 0;
}